package com.layui.ad.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.layui.ad.entity.SysMenu;
import com.layui.ad.query.BaseQuery;
import com.layui.ad.query.MenuQuery;
import com.layui.ad.utils.JsonResult;
import com.layui.ad.vo.SysMenuVo;
import com.layui.ad.vo.MenuListVo;

import java.util.List;
import java.util.Map;

public interface SysMenuService extends IService<SysMenu> {
    //菜单导航
    List<SysMenuVo> getMenuList();

    //菜单编辑页面下拉菜单
    List<Map<String, Object>> getMenuByPid(Integer pid);

    SysMenu getStartPage(Integer parentId);

    //菜单列表
    List<SysMenuVo> menuTree();

    //
    void saveToDb(SysMenu sysMenu);

    Integer updateToDb(SysMenu sysMenu);

    Map<String, Object> findByPk(Integer id);

    Boolean drop(Integer id);

    //第二版新增加(左侧菜单)
    List<MenuListVo> getNavbarMenu();

    //第二版新增加 菜单管理列表
    JsonResult getList(BaseQuery query);

    //第二版新增加  菜单的编辑
    public JsonResult edit(SysMenu entity);

    //第二版新增加 菜单的删除
    JsonResult deleteById(Integer id);

    //第二版新增加 菜单状态修改
    JsonResult setStatus(SysMenu menuVo);

    //第二版 根据用户ID获取菜单列表(主要用于获取权限码)
    List<SysMenu> getMenuListByAdminId(Integer adminId);

    //第二版 根据父类ID 获取其它子类ID List
    List<Integer> getTypeList(Integer pid);
}
